package com.tulele.vtool.mapper;

import com.tulele.vtool.model.BrandCategory;
import com.tulele.vtool.model.BrandInfo;
import com.tulele.vtool.model.combinedEntity.SearchBrandInfo;
import org.springframework.stereotype.Component;

import java.util.List;

@Component(value = "brandInfoMapper")
public interface BrandInfoMapper {

    /**
     * 查询品牌信息
     * @return
     */
    List<BrandInfo> queryBrandInfo();

    /**
     * 通过品牌ID查询品牌信息
     * @param brandId
     * @return
     */
    String queryBrandInfoByBrandId(Integer brandId);

    /**
     * 通过品牌ID查询品牌信息
     * @param brandId
     * @return
     */
    String queryBrandInfoTempByBrandId(Integer brandId);

    /**
     * 通过品牌名称查询品牌信息
     * @param brandName
     * @return
     */
    List<SearchBrandInfo> queryBrandInfoByBrandName(String brandName);

    /**
     * 查询推荐品牌信息
     * @return
     */
    List<BrandInfo> queryRecommendBrandInfo();

    /**
     * 添加品牌信息
     * @param brandInfo
     * @return
     */
    int addBrandInfo(BrandInfo brandInfo);

    /**
     * 查询用户品牌信息
     * @param brandInfo
     * @return
     */
    BrandInfo queryUserBrandInfoByBrandName(BrandInfo brandInfo);

    BrandInfo selectBrandInfoAndBrandHeadByTypeId(Integer articleBrandId);

    /**
     * 更新品牌信息
     * @param brandInfo
     * @return
     */
    int updBrandInfo(BrandInfo brandInfo);

    BrandInfo selectBrandNameAndBrandHeadByBrandId(Integer articleBrandId);

    /**
     * 大分类信息
     * @return
     */
    List<BrandCategory> queryAllCategory(BrandCategory brandCategory);

    /**
     * 根据大分类信息查询品牌信息
     * @return
     */
    List<BrandInfo> getRecommendBrandForBigCategory(Integer bigCategory);

    /**
     * 通过品牌ID查询品牌绑定的品牌id信息
     * @param brandId
     * @return
     */
    String queryBrandBindingIdsByBrandId(Integer brandId);

    /**
     * 如果该品牌没有文章了，那么就找关联品牌文章，如果没有关联分类文章
     * @param brandId
     * @return
     */
    Integer queryLinkBrandByBrandId(Integer brandId);
}
